_____ _    _         _____  _____ _   _          _____   _____  
    / ____| |  | |  /\   |  __ \|_   _| \ | |   /\   / _ \ \ / / _ \ 
   | |  __| |  | | /  \  | |__) | | | |  \| |  /  \ | | | \ V / | | |
   | | |_ | |  | |/ /\ \ |  _  /  | | | . ` | / /\ \| | | |> <| | | |
   | |__| | |__| / ____ \| | \ \ _| |_| |\  |/ ____ \ |_| / . \ |_| |
    \_____|\____/_/    \_\_|  \_\_____|_| \_/_/    \_\___/_/ \_\___/ 
                                                                     
                    ./Guarina0x0
Titulo: TryHackMe - Overpass
Fecha: 13-07-2021
Descripcion: Enumeracion - Fuzzing - Bypass - Crontab

TryHackMe - Overpass Writeup

## Ping:

ping -c1 10.10.13.163

Mediante el comando ping vamos a trazar una ruta ICMP para ver si la maquina esta activa y ante que tipo de sistema operativo estamos

Podemos ver que la respuesta del ttl es 63 , el TTL en maquinas Linux es 64 y en maquinas Windows 128 , en este caso es 63 porque pasa por un nodo intermediario.

## Reconocimiento Web:

Mediante la herramienta Nmap vamos a proceder a escanear los puertos abiertos , le realizamos un escaneo rapido mediante el parametro --min-rate que laza paquetes no mas lento que 5000 paquetes por segundos

Nos reporta que contamos con solo 2 puertos abiertos:

  • Puerto 22 SSH
  • Puerto 80 HTTP
  • Vamos a relizar un escaneo un poco mas completo en busca de versiones de los servicios y aplicando algunos scripts basicos de Nmap

    sudo nmap -sV -sC 10.10.13.163

    Como tenemos el puerto del Servicio Web abierto , mediante la herramienta WhatWeb vamos a ver si estamos ante algun gestor de contenido

    Nos reporta que estamos ante una pagina estatica , vamos abrirla para inspeccionarla

    Podemos ver texto sobre la explicacion de la maquina y un apartado llamado "Sobre Mi" y "Descargas" que no nos interesa demasiado , no tiene mayor relevancia

    Vamos a ver el codigo fuente en busca de algun comentario o alguna pista

    Podemos ver un comentario que puede ser una pista

    Si aplicamos fuzzing en busca de directorios web ocultos potenciales mediante la herramienta Wfuzz

    sudo wfuzz -c --hc=404 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://10.10.13.163/FUZZ

    Nos reporta varios directorios web potenciales:

  • /img -> Normalmente directorio donde se almacenan las imagenes
  • /downloads -> Directorio de descargas , donde esta los ejecutables que nos proporcionaba la pagina
  • /aboutus -> Directorio de Informacion
  • /admin -> Directorio Potencialmente Peligroso sobre la Administracion de la Pagina
  • /css -> Directorio donde se almacena el codigo fuente CSS
  • Si abrimos el directorio web /admin podemos ver un panel de login con 2 campos , podemos intentar realizar inyecciones SQL basicas para ver si es vulnerable

    Si abrimos el codigo fuente , tenemos un enlace a los archivos javascript que utiliza , si abrimos el archivo de login.js podemos ver un fallo en la programacion sobre la validacion en el campo de Cookie que se puede bypassear

    ## Bypass Auntentificacion :

    Mediante la herramienta Curl le vamos a pasar una cookie que sea "SessionToken" y cualquier cosa , asi realizaremos el bypass de la auntetificacion de la pagina /admin

    Podemos ver que nos devuelve las cabeceras http , junto con un ID_RSA , que vamos a copiar

    Ahora vamos a proceder a auntentificarnos mediante ese ID_RSA en el servicio SSH

    Podemos ver que nos pide una contraseƱa , por lo que tenemos que intentar romper ese hash Id_Rsa mediante el script ssh2john SSH2JOHN

    Una vez tenemos crackeado ese Hash , vamos a proceder a intentar romperlo mediante John The Ripper

    Ya podemos ver la contraseƱa del Id_RSA , por lo que ya podremos auntetificarnos en el servicio SSH

    Ya podremos visualizar el flag del usuario y ahora nos toca escalar privilegios

    ## Escalada de Privilegios :

    Podemos ver una lista de tareas que hacer , que nos da pista sobre que hay tareas programadas mediante la herramienta crontab

    Podemos ver que hay una tarea automatizada que ejecuta el script buildscript.sh en una consola bash

    Si buscamos permisos SUID vamos a ver que el fichero /etc/hosts tiene un cierto permiso , si vemos el fichero:

    Vamos a cambiar la direccion Ip de localhost , por la direccion Ip nuestra de atacante

    Ahora vamos a proceder a ir a nuestro equipo y vamos a crear la siguiente ruta de carpetas que era la que ejecutaba la tarea crontab /downloads/src y dentro de /src vamos a crear un script llamado buildscript.sh

    En el vamos a integrar una reverse shell en python3 que se conecte a nuestra direccion Ip en el puerto 443

    Ahora nos vamos a compartir un servidor mediante python3 para poder desde la maquina victima realizar una descargar del fichero buildscript

    Mediante el comando wget vamos a proceder a descargarnos el script que hemos creado que nos reenviara una reverse shell con permisos de administrador

    Una vez tenemos el script , vamos abrir en nuestra maquina atacante un puerto mediante la herramienta netcat y vamos a esperar que se ejecute la tarea automatizada de crontab y nos de una shell reversa con permisos de Root

    Y ya podremos visualizar el flag de Root

    Ya tendriamos la maquina Overpass de TryHackMe Explotada!